/* * Copyright 2012 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.drools.simulation.impl; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.drools.simulation.fluent.simulation.SimulateTestBase; import org.drools.simulation.fluent.simulation.SimulationFluent; import org.drools.simulation.fluent.simulation.impl.DefaultSimulationFluent; import org.drools.simulation.fluent.test.impl.ReflectiveMatcherFactory; import org.junit.Test; import org.kie.api.builder.ReleaseId; import org.kie.internal.fluent.VariableContext; import org.kie.api.io.ResourceType; public class StandardjBPM5FluentTest extends SimulateTestBase { @Test public void testUsingImplicit() throws IOException { SimulationFluent f = new DefaultSimulationFluent(); VariableContext<Person> pc = f.<Person> getVariableContext(); List<String> imports = new ArrayList<String>(); imports.add( "org.hamcrest.MatcherAssert.assertThat" ); imports.add( "org.hamcrest.CoreMatchers.is" ); imports.add( "org.hamcrest.CoreMatchers.equalTo" ); imports.add( "org.hamcrest.CoreMatchers.allOf" ); ReflectiveMatcherFactory rf = new ReflectiveMatcherFactory( imports ); String str = "package org.drools.simulation.test\n" + "import " + Person.class.getName() + "\n" + "global java.util.List list\n" + "rule setTime\n" + " when\n" + " then\n" + " list.add( kcontext.getKnowledgeRuntime().getSessionClock().getCurrentTime() );\n" + "end\n" + "rule updateAge no-loop\n" + " when\n" + " $p : Person()\n" + " then\n" + " list.add( kcontext.getKnowledgeRuntime().getSessionClock().getCurrentTime() );\n" + " modify( $p ) {\n" + " setAge( $p.getAge() + 10 )\n" + " };\n" + "end\n"; String strProcess = "<definitions id='Definition' " + "targetNamespace='http://www.jboss.org/drools' " + "typeLanguage='http://www.java.com/javaTypes' " + "expressionLanguage='http://www.mvel.org/2.0' " + "xmlns='http://www.omg.org/spec/BPMN/20100524/MODEL' " + "xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' " + "xsi:schemaLocation='http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd' " + "xmlns:g='http://www.jboss.org/drools/flow/gpd' " + "xmlns:bpmndi='http://www.omg.org/spec/BPMN/20100524/DI' " + "xmlns:dc='http://www.omg.org/spec/DD/20100524/DC' " + "xmlns:di='http://www.omg.org/spec/DD/20100524/DI' " + "xmlns:tns='http://www.jboss.org/drools'>" + " <process id='DummyProcess' name='Sample Process'>" + "<startEvent id='_1' name='StartProcess' />" + "<scriptTask id='_2' name='Script 1' >" + "<script>System.out.println('Script 1 - Executing .. ');</script> " + "</scriptTask>" + "<scriptTask id='_3' name='Script 2' >" + "<script>System.out.println('Script 2 - Executing .. ');</script>" + "</scriptTask>" + "<endEvent id='_4' name='End' >" + "<terminateEventDefinition/>" + "</endEvent>" + "<sequenceFlow id='_1-_2' sourceRef='_1' targetRef='_2' />" + "<sequenceFlow id='_2-_3' sourceRef='_2' targetRef='_3' />" + "<sequenceFlow id='_3-_4' sourceRef='_3' targetRef='_4' />" + "</process>" + "</definitions>"; ReleaseId releaseId = createKJarWithMultipleResources( "org.test.KBase1", new String[] {str, strProcess} , new ResourceType[] {ResourceType.DRL, ResourceType.BPMN2} ); List list = new ArrayList(); VariableContext<?> vc = f.getVariableContext(); // @formatter:off f.newPath("init") .newStep( 0 ) .newKieSession( releaseId, "org.test.KBase1.KSession1" ) .setGlobal( "list", list ).set( "list" ) .startProcess("DummyProcess") .fireAllRules() .end() .runSimulation(); // @formatter:on } }